#include <pthread.h>
#include <iostream>
#include <unistd.h>
#include <cstring>
void *start_routine(void *args)
{
    std::string threadname = static_cast<const char *>(args);
    std::cout << threadname << std::endl;
    // pthread_detach(pthread_self()); // 不要在这里分离线程
    sleep(5);
    return nullptr;
    // pthread_exit(nullptr);// 一般用在想提前退出，需要注意线程的资源泄漏问题
}
int main()
{
    pthread_t tid;
    pthread_create(&tid, nullptr, start_routine, (void *)"thread 1");
    // pthread_detach(tid); // 创建线程成功时，由主线程进行分离
    // pthread_cancel(tid);// 取消线程
    // int n = pthread_join(tid, nullptr);
    // std::cout << n << ":" << strerror(n) << std::endl;
    // sleep(10);


    return 0;
}